MCU應用專欄

提高嬰兒哭聲辨識 MCU多功能嬰兒看護器有譜

作者: 李革緯 / 汪啟茂
2007 年 10 月 24 日

低價位/高性能為產品訴求



由於社會高度的工業化發展後,雙薪的小家庭成為社會上的主流,對於剛有新生兒誕生的小家庭而言,父母在工作之餘照顧嬰兒尤其繁瑣與勞累,往往想要在嬰兒睡眠時的空檔,忙裡偷閒的處理一些自己的事情,又怕不在嬰兒的身邊時,嬰兒醒來哭泣無法得知並予以照顧;或是自己忙到忘記嬰兒該進食的時間,此時若有一部能夠幫助父母親減輕照顧的工作機器,必定能夠受到歡迎。



針對以上的設計構想,目前在市場上並未找到相同的產品,所搜尋到的只有兩種類似的產品,一種為聲音控制觸發音樂撥放,另一為聲音控制觸發射頻訊號告知看護者;而在兩大類產品中聲音的控制,大多利用邏輯IC的組合,去偵測聲音的電壓準位,當聲音的電壓準位大於所設定的電壓準位時,即觸發相對應的訊號,此方式於實際的應用上,會因為使用環境中背景聲音的突然變化,而容易造成誤觸發。而我們的設計構想,乃是利用盛群的微處理機,設計出能夠降低誤觸發的發生,進而提高嬰兒哭聲的辨識率。



就設計構想的核心價值而言,運用盛群的微處理器辨識嬰兒的哭啼,乃是本產品的發展重點。一般在做即時性的語音訊號處理,大多是選擇有內含數位訊號處理器(DSP)功能的中、高價位微處理器,才能達到即時反應的效果,一般低價位的微處理器欲做到上述的功能,須能夠針對相關的需求設計出一套相對應的演算法,也因此本產品的設計重點,即在於使用盛群的低價位、高性能微處理器,針對嬰兒哭啼聲進行聲音的辨識,而此點也即是本產品日後在進行市場行銷時,能夠壓低售價的最佳利器。



語音辨識/使用介面為設計要點



本產品設計重點,在於如何利用盛群微處理器,完成在實際應用環境中克服一般室內的音源,以正確辨識嬰兒哭聲;以及操作介面與相關嬰兒狀況提示設計兩大主要項目。



有關語音訊號的處理實例如語者辨識(Speaker Recognition)、語音編碼(Speech Coding)、文字翻語音(Text-to-Speech)、語音辨識系統(Speech Recognition)等已發展多年。通常一個語音辨識系統會分成聲學(Acoustics)與語言(Language)部分,聲學部分是將聲音分辨出來,一般的語音辨識單位(Speech Recognition Unit)是音素、次音節、音節、詞,而聲學辨識的結果只是把對應的語音辨識單位找出來,但要組成一個有意義的語句,就得依賴後續的語言模型(Language Model),針對嬰兒哭聲的持續性連續語音訊號,若要利用上述「語言部分」的處理方法來處理嬰兒的哭聲較不容易。



目前針對連續語音之辨識尚有其難處,因此傳統的語音特徵參數,如線性預測編碼(LPC)、倒頻譜係數(Cepstrum Coefficient)等並不太適用於此系統上(因須進行繁雜的數學運算,而使用高階的微處理器)。所幸哭聲有其旋律的變化特性,而旋律之變化就是語音訊號另一項重要參數-音高(Pitch)。將連續聲音之音高依照序列值連接起來就是音高走勢(Pitch Contour),即是本產品所建立的系統主要特徵辨識參數。



一般室內的背景音源產生多為一固定的頻率,或是一個突發性的音源產生,並無所謂的音高走勢,利用此特點當嬰兒於室內產生哭聲時,針對一段時間哭聲的音高走勢,可以判斷出哭聲與一般室內背景音源之差異,由此特性可解決「正確的辨識出嬰兒哭泣聲」的問題。



關於「系統操作介面」部分,操作介面就是使用者介面(User Interface),簡單的說就是使用者和系統溝通的橋樑,系統設計品質取決於操作介面設計、資訊技術應用技巧,針對目前嵌入式嬰兒看護器系統設計,其主要方針為操作簡便,家庭中的使用者毋須繁瑣學習,即可操控使用;此外,操控訊息的表示與嬰兒狀況提示訊息,須簡單易懂。



而有關於整個產品系統的設計,即是根據上述兩點的方針進行設計,在軟體程式規畫與撰寫中,若有違反到設計的主要方針,均須修改規畫的設計,不能更動「主要方針」,而硬體的操作按鍵與訊息的顯示位置,也須符合所謂的人體工學,如此,才能夠設計出品質優良的系統。



語音特徵參數之數學演算法



語音特徵參數的擷取在語音訊號處理上為一重要學問,一般語音辨識是找尋語者本身之特徵,如線性預測編碼(LPC)、倒頻譜(Cepstrum)、音高週期(Pitch Period)等參數。而本產品所要擷取的語音特徵參數即為音高週期。



音高是一個音訊裡面很重要的特徵,其代表聲音頻率的高低,而此頻率指的是基本頻率(Fundamental Frequency),也就是基本週期(Fundamental Period)的倒數。對整段音訊進行抓取音高的過程,通常稱為音高追蹤(Pitch Tracking),音高追蹤的基本流程為:先將整段音訊訊號切成音框(Frames),相鄰音框的重疊與否可有可無;再算出每一音框所對應的音高值;再則排除不穩定的音高值(可由音量來篩選,或由音高值的範圍來過濾);最後是對整段音高進行平滑化,通常是使用中位數濾波器(Median Filters)。



由一音框計算出音高的方法很多,可分為時域和頻域兩大類:




由聲音波形處理計算法
時域(Time Domain)演算法就是直接對聲音波形做處理來算出音高週期。而此類基頻擷取器大多以波峰和波谷做量測、以越零率做量測或者以自相關運算做量測。其基本的假設在於對一個半週期性訊號的共振峰效果做一個適當的最小化處理,則簡單的時域量測可有效的計算出音高週期,目前常見的演算方式如自我相關函數(Autocorrelation function, ACF)、平均能量差異法(Average Magnitude Difference Function, AMDF)、簡化反向濾波(Simple Inverse Filter Tracking, SIFT)。




以頻譜計算週期性的方式
頻域(Frequency Domain)演算法的立足點在於,一時域下的週期性訊號頻譜將會於基頻和諧音(Harmonics)出現連續的脈衝(Impulse)訊號。因此,可簡單在頻譜上計算出該週期性的音高週期,目前常見的演算方式如調和產品波譜方式(Harmonic Product Spectrum Method)、倒頻譜方式(Cepstrum Method)。


本產品採用的演算法則屬於時域中的AMDF演算法,一般而言,AMDF不牽涉到除法和乘法,而僅做減法與加法的運算,因此較適用在微電腦嵌入式系統或微控制器(MCU)的實作。以聲訊處理的方式,若將聲音訊號分段觀察,則週期與振幅的變化較為緩慢,此稱為類似穩定(Quasi-stationary)或半靜態的訊號。在數位語音處理上,每一分段稱為一音框(Frame),由於哭泣聲為連續性的語音訊號,因此設定取樣時間約為2.56 秒,取樣率為4,000Hz,每六十四個取樣值設定為一個16毫秒音框,且音框與音框間無重疊(Overlap)點,共取得一百六十個音框,即16毫秒×160=2.56秒;將每一音框利用AMDF演算法取得一個音高值,則在取樣時間內可取得一百六十個音高值,此連續性的音高值即為我們所要的特徵參數音高週期。


使用AMDF的方法來做基頻的擷取,主要的公式如下所示:

  ……… (1)

上式中D(k)為各頻率點之AMDF之計算值;S(i)為輸入之連續語音訊號。



而關於上述AMDF演算法實際的處理如圖1,圖中的上方第一張圖形為原始的嬰兒哭泣聲輸入訊號,經過AMDF演算法的處理轉換成第二張的圖示,根據國外學者研究指出,一般嬰兒哭泣聲的基本頻率約在300~750Hz之間,也因此以此頻率範圍值,將第二張圖示所擷取到的音高週期,利用MCU軟體程式處理將擷取到的音高值,做為帶通濾波器(Band Pass Filter)的頻率限制,如第三張所示。


圖1 語音訊號轉AMDF示意圖



從圖1的第三張中可以發現,嬰兒哭泣聲於4秒內必有旋律的變化(橫軸第75~110點),而此旋律的變化特性即為本產品所使用的語音特徵參數。



視需求制定系統功能



針對實際上的應用功能,先使用心智圖繪製出可能的需求(圖2),並將此系統命名為Baby System。



圖2 Baby System功能需求



以下為針對Baby System各項功能進行相關的說明:




即時哭聲提示
須從一般室內的各種不同聲音來源中辨識出嬰兒的哭泣聲,當系統偵測到嬰兒哭聲時,須即時通知看護嬰兒人員。




播放安撫情緒/舒眠語音
此功能主要目的,如能提供父母親自行錄製聲音約1~30秒,且可連續撥放錄音內容,以便於嬰兒哭泣時,立即安撫嬰兒當下的情緒;建立嬰兒安定舒眠的音樂,提供播放。




生活習慣通知設定
利用所設定的嬰兒喝奶時間定時通知,日後即可根據從中所收集到的資訊,自動調整先前所設定的提示訊息時間,以符合嬰兒的需求。


看護機/接收機系統規畫



依照Baby System之功能制定,規畫整體系統的需求。本系統主要分成兩部機器,主機器命名為「Baby System看護機」,其主要的功能在於嬰兒狀態的看護工作;次機器命名為「Sub Baby System接收機」,其主要的功能在於接收看護機所提供的訊息。



當看護機依據使用者的要求設定完成後,即進入看護模式,在此段看護的時間內,看護機若接收到嬰兒哭泣聲的反應時,會適時安撫嬰兒當下的情緒,並即時通知接收機所發生的狀況。圖3為Baby System規畫需求,整個系統分成四大設計重點,分別為工作電壓、輸入訊號、輸出訊號與訊號控制處理裝置,此四大項目標乃是看護機之軟、硬體設計的依據。



圖3 Baby System規畫需求



圖4為Sub Baby System規畫需求,整體系統亦也區分為四大設計重點,分別為電力(Power)、射頻輸入訊號(RF Input Signal)、顯示輸出(Display Output)、鍵盤輸入(Keyboard Input),此乃接收機之軟、硬體設計的依據。



圖4 Sub Baby System規畫需求



硬體系統採模組化架構



將硬體電路規畫成模組的形式,以由上而下(Top Down)方式顯示(圖5、6),並針對各模組的重點型式功能做簡略的介紹:


圖5 Baby System系統功能方塊圖




圖6 Sub Baby System系統功能方塊圖




系統核心SoC參數值為選用要件



主控系統模組即是整體系統控制的核心MCU單晶片,目前該產品選用的單晶片為HT46R24 A/D Type 8位元MCU,而選擇此晶片是因為其一般用途暫存器共有384個(分成兩個組)、2.8192×16內建程式記憶體(Program Memory)、提供八個頻道10位元解析度的類比數位轉換器(A/D converter)、提供兩組間接定址暫存器使用以及提供兩組定時/計數器(Timer/Event Counter)控制單元的五項重要參數。


由於以上五種參數值,對於軟體設計中的語音訊號辨識是極為重要的功能,因此選用HT46R24 A/D Type 8位元MCU作為整體系統發展的核心,而圖7為此主控系統模組之電路圖示。


圖7 MCU電路圖



電源供給輸入電壓以9伏特為主



電源電路的設計關係到整個系統所需的工作電壓範圍,包含MCU與其周邊的元件,因而在設計的考量上,盡量能夠以統一的工作電壓,做為設計的準則,目前系統工作電壓以DC+5伏特做為設計的依據,語音訊號接收電路則採用+9伏特的電源;因此,整體的輸入電源以9伏特電池或9伏特整流器為設計考量(圖8)。DJ1為9伏特整流器的輸入端,D3二極體的功用在於預防電壓極性接反時,保護整體電路元件;7809&78L05兩元件乃是穩壓IC,分別將輸入的電壓穩定在+9伏特與+5伏特,而穩壓IC旁的旁路電容主要做為幫助穩壓與濾除漣波;LED5則為電源與否的指示燈。



圖8 電源電路圖



選用EEPROM作資料儲存單元





圖9 資料儲存電路圖



資料儲存的主要目的,在於儲存系統的設定參數值,由於系統於電源開啟時,須先將相關的系統參數載入系統中,做為系統運行的參考依據,而此系統參數的特性可由使用者自行更改設定以及參數資料的不可揮發性,依據上述的特性,選用盛群所生產的HT93C46電子式可清除程式化唯讀記憶體(EEPROM)做為資料儲存單元(圖9)。



為節省MCU之I/O接腳,在此將HT93C46 EEPROM的DATA IN PIN&DATA OUT PIN,共用同一個MCU之I/O接腳。



藉RF發射模組接收狀態



射頻訊號使用的時機,乃是當Baby System接收到嬰兒所發出的聲音,或是設定的工作時間(喝奶時間)結束時,透過無線電訊號的傳輸,告知Sub Baby System目前的工作狀態;而我們所使用的硬體模組,乃是目前市面上常用的超外差式射頻接收模組,而訊號傳輸碼,選用盛群的HT12E&HT12D做為編解碼的資料傳輸碼(圖10)。



圖10 RF發射電路圖



聲音輸出模組須具可重複語音功能



聲音輸出使用的時機,乃是當Baby System接收到嬰兒所發出的聲音時,透過喇叭的輸出,安撫嬰兒的情緒;由於所須輸出聲音的功能,須為可重複錄製語音狀態的,此點目前參考盛群相關的Voice系列晶片,都只有OPT模式的晶片,無法滿足可重複錄製的功能需求,因而期待盛群能在不久的將來於語音Voice系列的晶片中,看到生產相關的產品;而目前使用的硬體語音模組,為市面常用的ISD1420語音IC,做為語音錄製的模組核心(圖11)。此模組簡略操作方式如下:


圖11 聲音輸出模組電路圖





錄音
目前ISD1420可錄製聲音的時間為20秒,錄音時,按鍵S2按下不要放開,對麥克風說出要錄製的聲音,錄製完後放開按鍵S2即完成錄音動作,目前電路中S2按鍵為程式開發時使用,正式產品的錄音動作,乃是由主MCU所控制。




播放
播放時,按下按鍵S3後放開,即可從喇叭SP1中聽到所錄製的聲音,目前電路中S3按鍵為程式開發時使用,正式產品的播放動作,乃是由主微控制器所主控。


語音處理為聲音輸入模組主要功能



聲音輸入使用時機,為在接收到嬰兒所發出的聲音,而聲音輸入硬體模組的設計,即是一般麥克風的收音電路(圖12)。由於本系統最主要的功能為語音處理,因而該電路的設計須搭配軟體,主要的語音處理可分兩部分討論:


圖12 聲音輸入模組電路圖





原始語音訊號的接收電路
由於本系統的運算處理語音訊號為及時收到的語音,此部分的聲音訊號可由圖12中A點位置中取得。




語音訊號觸發的偵測電路
由於原始語音訊號的接收端,其訊號源會不斷有訊號輸入,程式若想要處理語音訊號,須有一個起始的輸入點,即一語音訊號觸發的偵測電路,做為程式處理訊號時的輸入起始點,圖中的B點位置訊號,即是偵測的起始觸發訊號。


軟體架構走向模組形式



軟體程式亦如硬體可以規畫成為模組的形式,每一軟體模組 即為一副程式,便於日後開發其他產品時可模組化的轉移,以下為此產品應用的模組形式,並對該產品的功能做簡略的介紹:




主流程控制MCU工作程序
主流程主要工作是在控制微控制器的工作順序,其相關的動作流程如圖13所示。圖中右方的按鍵狀態處理、處理相關暫停動作、處理相關聲音動作等,各為相關的軟體動作模組,藉此以控制工作流程。




觸發語音訊號處理程序
語音訊號分析為整個系統中的其中一個副程式,其動作方式為每隔一段時間去探詢(Polling)硬體介面的輸入端,判斷是否有觸發的語音訊號,當硬體介面有觸發的訊號輸入時,其相關動作流程如圖14。





圖13 MCU程式主流程控制


圖14 語音信號處理流程圖



哭聲辨識/監控為未來開發方向


目前所設計完成的多功能之嬰兒看護器,已經可以執行嬰兒的哭泣聲狀態的辨識,並進行所錄製的安撫聲音播放與狀態的通知,爾後續還要繼續開發的方向有下列兩大項目:




由嬰兒哭聲旋律辨識需求
透過不同嬰兒哭聲旋律的變化,可以將其區分歸類判讀出嬰兒目前哭聲的各種需求,比方說:疼痛時的哭聲與飢餓時的哭聲辨識等。




增加嬰兒每日進食狀況記錄
為能達成減輕父母親對嬰兒進食方面的顧慮,可將所有的嬰兒語音辨識的資料上傳至電腦儲存,以便作為每日嬰兒的生長記錄監控。


(本文作者汪啟茂為義守大學電子系教授、李革緯為研究生)

》想看更多內容?快來【免費加入會員】【登入會員】,享受更多閱讀文章的權限喔!
標籤
相關文章

效能媲美電信級設備 xTCA硬體開放平台實現多元服務

2009 年 01 月 05 日

毋須建立通訊協定 非信令模式加速LTE產測

2012 年 11 月 08 日

角度偵測/二維碼讀取一次搞定  機器視覺提振產線運作效率

2016 年 11 月 21 日

物聯網應用帶動SSD需求 商業/類工控首重穩定與成本

2018 年 06 月 24 日

多元整合定位技術 GNSS/LPWA滿足IoT追蹤應用

2021 年 03 月 25 日

降低行動裝置即時運算負載 AR同作巧助神經網路推論

2021 年 11 月 08 日
前一篇
博通以完整CMOS射頻開發單晶片HSUPA處理器
下一篇
太克Asia Symposium 2007開跑